package util

import (
	"encoding/base64"
	"errors"
	"github.com/skip2/go-qrcode"
)

// GenerateQRCodeToFile 生成二维码并保存为文件
func GenerateQRCodeToFile(url, filename string, size int) error {
	if url == "" {
		return errors.New("URL cannot be empty")
	}

	if size < 100 {
		size = 200 // 默认大小
	}

	return qrcode.WriteFile(url, qrcode.Medium, size, filename)
}

// GenerateQRCodeToBase64 生成二维码并返回Base64编码
func GenerateQRCodeToBase64(url string, size int) (string, error) {
	if url == "" {
		return "", errors.New("URL cannot be empty")
	}

	if size < 100 {
		size = 200 // 默认大小
	}

	// 生成二维码PNG数据
	pngData, err := qrcode.Encode(url, qrcode.Medium, size)
	if err != nil {
		return "", err
	}

	// 转换为Base64
	base64Str := base64.StdEncoding.EncodeToString(pngData)
	return base64Str, nil
}
